package com.vteba.security.spi;

import java.util.List;

import com.vteba.security.user.Authority;
import com.vteba.security.user.Resource;

/**
 * 权限service接口。
 * @author yinlei
 * @date 2012-4-20
 */
public interface AuthoritiesService {
	/**
	 * 获得系统所有的权限名 spring security use
	 * @return List<String> 系统所有的权限名
	 */
	public List<? extends Authority> getAuthorities();
	
	/**
	 * 根据权限名和租户id，获得该权限下的资源 spring security use
	 * @param authority 权限参数
	 * @return 资源URL list
	 */
	public List<? extends Resource> getUrlResource(Authority authority);
	
	/**
	 * 根据权限名和租户id，获得该权限下的资源（方法路径，含包名），spring security use
	 * @param authority 权限参数
	 * @return （资源列表）方法名列表
	 */
	public List<? extends Resource> getMethodResource(Authority authority);
}

